@scream
3年前 提问
1个回答

什么是挂钩攻击技术

007bug
3年前
官方采纳

挂钩(Hooking)技术是将要执行的具有某种特殊功能的代码(如Rootkit攻击代码或者恶意程序)作为外挂程序巧妙地插入到目标程序(被挂钩程序)中实现攻击。

当目标程序执行到被挂钩处时强行转向执行外挂程序(钩子程序),当外挂程序执行结束后再返回目标程序的被挂钩处继续执行目标程序。挂钩技术能够为用户提供系统或进程中各种事件产生的消息,并能够根据用户需要改变程序的执行流程,且增加新的功能。也就是说,挂钩技术为用户访问Windows系统程序的结构和执行方式提供了一种途径,而Windows系统的这一工作机制却为实现Rootkit攻击创造了条件。

攻击者只要能够访问目标进程的地址空间,就可以挂钩并修改其中的任何函数(如函数指针、系统调用入口地址等)。在进程打开时这些被修改后的函数被调用执行,此时将自动跳转到攻击者设置的攻击代码所在的地址去执行,并实现隐藏进程和端口等功能。

例如,利用挂钩技术,攻击者可以将木马、后门等恶意代码以驱动程序的形式挂钩到系统的正常启动流程中(如Windows的Winload.exe),使这些恶意代码在用户根本不知情的情况下随着系统驱动程序的加载而自动运行。

从理论上讲,不管是用户模式还是内核模式,只要存在能够挂钩的地方都可以实现基于挂钩的Rootkit攻击。